package top.luo.sqlSession;

import java.util.List;

/**
 * @author luo
 * @date 2021-01-04 21:44
 */
public interface SqlSession {

    /**
     * 查询集合
     *
     * @param statementId mappedStatementId
     * @param params      参数
     * @param <E>         返回类型
     * @return 集合
     */
    <E> List<E> selectList(String statementId, Object... params) throws Exception;

    /**
     * 查询单个对象
     *
     * @param statementId mappedStatementId
     * @param params      参数
     * @param <T>         返回类型
     * @return 对象
     */
    <T> T selectOne(String statementId, Object... params) throws Exception;

    /**
     * 为mapper生成代理类
     *
     * @param mapperClass mapper class
     * @param <T>         mapper class
     * @return mapper 代理类
     */
    <T> T getMapper(Class<?> mapperClass);

}
